要在 Linux 上執行固定週期的時程,利用 crontab 這個內建的功能便可以完成,可以根據設置的時間參數來執行例行性的工作排程。
* 7 * * 1-6 /usr/local/MyDir/app/monitor.sh
參數依序是分鐘、小時、日期、月份、星期、command
※ 星期參數為 0 則代表是星期日。
星號:代表任何時刻都接受的意思
逗號:代表分隔時段,例如:30 9,17 * * * command
,代表早上9點半和下午五點半都執行 command。
減號:代表一段時間範圍,例如:15 9-12 * * * command
,代表從9點到12點的每個15分都執行 command。
反斜線n:n代表數字,表示每個 n 單位間隔,例如:*/5 * * * * command
,代表每隔 5 分鐘執行一次。
crontab 是會根據不同的使用者去判定可以操作的範圍。
crontab -l:列出該使用者擁有的 crontab 指令
crontab -e:編輯該使用者的 crontab 指令
crontab -r:將使用者的 crontab 全部清除(小心使用)
編輯完後就可以存檔離開,Linux 系統便會依照你設定的排程固定做事。
※ 下達指令請用絕對路徑避免錯誤
範例參考:
每五分鐘執行一次測試 shell script*/5 * * * * /home/ubuntu/test.sh
每天早上九點(除了星期日)執行 report.js0 9 * * 1-6 node /home/ubuntu/workspace/report.js